<?php

namespace app\api\controller;

use think\Controller;
use think\Request;
use app\api\validate\LoginValidate;
use app\api\model\User;
 
use Firebase\JWT\JWT;

class Login extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $data=request()->param();
        $validate=new LoginValidate();

        if (!$validate->check($data)) {
            return json(['code'=>400,'msg'=>$validate->getError()],400);
        }   

        $db=new User();
        $res=$db->where('username',$data['username'])->where('password',$data['password'])->find();
        if (!$res['password']!=$data['password']){
            return json(['code'=>400,'msg'=>'账号或密码错误'],400);
        }

        $jwt=new JWT();
        $key = 'api'; 
        $payload = [
        // 'iss' => "http://www.api.io",
        // 'aud' => "http://www.api.io",
        'iat' => time(),
        'nbf' => time(),
        'exp'=>time()+60*60*24,
        'aid'=>$res['id']
        ];
  
        $token=$jwt::encode($payload,$key);


        return json(['code'=>1 ,'msg'=>'登录成功','token'=>$token]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
